﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Net;
using System.IO;
using VoluntariadoMobileModel;

namespace VoluntariadoMobileViewModel
{
    public class UsuarioOportunidadViewModel : ViewModel
    {
        string _nombre;
        string _apellidos;
        string _email;
        string _descripcion;
        int _idOportunidad;

        public string Nombre
        {
            get { return this._nombre; }
            set
            {
                if (this._nombre != value)
                {
                    this._nombre = value;
                    this.RaisePropertyChanged("Nombre");
                }
            }
        }

        public string Apellidos
        {
            get { return this._apellidos; }
            set
            {
                if (this._apellidos != value)
                {
                    this._apellidos = value;
                    this.RaisePropertyChanged("Apellidos");
                }
            }
        }

        public string Email
        {
            get { return this._email; }
            set
            {
                if (this._email != value)
                {
                    this._email = value;
                    this.RaisePropertyChanged("Email");
                }
            }
        }

        public string Descripcion
        {
            get { return this._descripcion; }
            set
            {
                if (this._descripcion != value)
                {
                    this._descripcion = value;
                    this.RaisePropertyChanged("Descripcion");
                }
            }
        }

        public int idOportunidad
        {
            get { return this._idOportunidad; }
            set
            {
                if (this._idOportunidad != value)
                {
                    this._idOportunidad = value;
                    this.RaisePropertyChanged("idOportunidad");
                }
            }
        }

        ICommand _AddUsuarioOportunidad;

        public ICommand AddUsuarioOportunidad
        {
            get
            {
                this._AddUsuarioOportunidad = new RelayCommand()
                {
                    CanExecuteDelegate = c => true,
                    ExecuteDelegate = c => SetUsuarioOportunidad(Nombre,Apellidos,Email,Descripcion, idOportunidad)
                };
                return this._AddUsuarioOportunidad;
            }
        }

        private void SetUsuarioOportunidad(string nombre, string apellidos, string email, string descripcion, int idOportunidad)
        {
            System.Uri myUri = new System.Uri(string.Format("http://{0}:{1}/VoluntariadoMobile/addUsuarioOportunidades/{2}/{3}/{4}/{5}?idOportunidad={6}",Settings.Default.Host,Settings.Default.Port, nombre, apellidos, email, descripcion, idOportunidad));
            HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(myUri);
            NetworkCredential myCred = new NetworkCredential("demo", "demo");
            CredentialCache myCredentialCache = new CredentialCache();
            myCredentialCache.Add(myUri, "Basic", myCred);
            HttpWRequest.Credentials = myCredentialCache;

            HttpWebResponse HttpWResponse = (HttpWebResponse)HttpWRequest.GetResponse();
            Stream strm = HttpWResponse.GetResponseStream();
            StreamReader sr = new StreamReader(strm);
            string sText = sr.ReadToEnd();
            strm.Close();
            sr.Close(); 
        }
    }
}
